import api from '../../api';
import { message } from 'antd';
export default {
  namespace: 'performanceAnalysisReportM',
  state: {
    columns: [
      {
        key: 'reportName',
        title: '报告名称',
        width: '35%',
        render: (value, record) => {
          return (
            <div style={{ height: record.fileList?.length > 5 && '100px', overflowY: record.fileList?.length > 5 ? 'auto' : 'none' }}>
              {record.fileList.map((val, index) => {
                return <div key={index}>{val.title}</div>;
              })}
            </div>
          );
        },
      },
      {
        key: 'productNum',
        title: '产品数量',
        type: 'number',
      },
      {
        key: 'reportDate',
        title: '报告日期',
        width: '20%',
      },
      {
        key: 'generationTime',
        title: '生成时间',
        width: '20%',
      },
      {
        key: 'operate',
        type: 'operate',
        title: '操作',
        width: 100,
      },
    ],
  },
  effects: {
    // 获取表格数据
    *getDataList({ payload, callback }, { call, put, select }) {
      const res = yield call(api.performanceAnalysisReport.getPerformanceAnalysisReportReport, payload);
      if (res?.code === 0) {
        callback(res.data);
      } else {
        callback();
        message.error(res?.msg || '查询报告列表失败!');
      }
    },

    //  获取基本信息数据
    *getBasicInfoData({ payload, callback }, { call, put }) {
      let res = yield call(api.performanceAnalysisReport.getBasicInfoData, payload);

      if (res && res.code == 0) {
        res.data &&
          res.data.dataSource.forEach((item) => {
            // 处理精度
            if (item.title == '资产份额' || item.title == '资产净值' || item.title == '总资产' || item.title == '杠杆率' || item.title == '7日年化收益') {
              // 保留2位
              item.fix = 2;
            } else {
              item.fix = 4;
            }
            // 判断是数额还是比率
            if (item.title == '杠杆率' || item.title == '静态收益率' || item.title == '到期收益率' || item.title == '7日年化收益') {
              item.dataType = 'rate';
            } else if (item.title == '产品代码' || item.title == '产品名称' || item.title == '产品区间' || item.title == '报告区间') {
              item.dataType = 'name';
            } else {
              item.dataType = 'numb';
            }
          });
        let tempArr = [];
        res.data &&
          res.data.dataSource.forEach((item) => {
            tempArr.push({
              title: item.title,
              result: item.result,
              type: item.up === true ? '1' : item.up === false ? '2' : '3',
              dataType: item.dataType,
              fix: item.fix,
            });
          });
        callback('success', tempArr);
      } else {
        message.error(res?.message || '获取基本信息2数据失败，请联系管理员修复。');
        console.error(`获取基本信息2数据失败，失败原因：${res?.message}`, '接口名称：getBasicInfoData 接口：productOverView/queryJxfxBasicInfo');
      }
    },
  },
  reducers: {
    save(state, { payload }) {
      return {
        ...state,
        ...payload,
      };
    },
  },
};
